#ifndef INC_COMMANDS_NODE_BATCHGETCOMMAND_H
#define INC_COMMANDS_NODE_BATCHGETCOMMAND_H

#include "nodecommand.h"

#include <string>
#include <map>
#include <set>
using namespace std;

#include <Poco/File.h>
using Poco::File;

namespace Commands {
	class BatchGetCommand : public NodeCommand
	{

		static string const NAME;
		static Command* makeCommand(string r, void* d);
		public:
			typedef map<string, File> Files;
			BatchGetCommand(Files const& files, set<id_type> visited = set<id_type>(), NodeData* data = 0);
			virtual ~BatchGetCommand() {}

			string repr();

			string name();

			CommandCreator creator();

			void execute();
		protected:
			Document* toXML(Document* doc = 0);
		private:
			Files _files;
			set<id_type> _visited;
	};
}

#endif /* INC_COMMANDS_NODE_BATCHGETCOMMAND_H */
